package optimizers.localsearch;

import java.util.concurrent.CompletionService;

import model.OligoSystemGeneral;

import optimizers.commons.RunConfig;
import optimizers.commons.evaluator.FitnessEvaluationService;

import fitness.Fitness;
import fitness.FitnessResult;

public abstract class AbstractParamOptimizer {
	boolean maximize;

	public AbstractParamOptimizer(boolean maximize) {
		this.maximize = maximize;
	}

	public abstract OligoSystemGeneral[] createInitGeneration(
			OligoSystemGeneral oligoSystem);

	public abstract boolean stopEvolution();

	public abstract OligoSystemGeneral[] getNextGeneration(
			OligoSystemGeneral[] curGen, double[] results);

	public abstract OligoSystemGeneral optimize();
}
